// 用来进行权限验证（拦截 token）
// 导入路由对象
import router from '@/router'
// 导入 store
import store from '@/store'
import { Message } from 'element-ui'
// 定义一个白名单
const WHITE_LIST = ['/login']
// 添加导入守卫
// 前置守卫
router.beforeEach((to, from, next) => {
  // to：跳转到的路由对象
  // from：从哪里路由对象跳转的
  // next：回调函数（是否继续向下执行）
  // 判断是否存在 token:
  const token = store.state.user.token
  if (token) {
    //  存在
    //    判断访问的页面是否是 login
    if (to.path === '/login') {
      //      是：跳转到首页
      Message.warning('您已经登录了，不需要再登录')
      next('/')
    } else {
      //      否：向下执行
      next()
    }
  } else {
    //  不存在
    //    判断访问的页面是在白名单中
    if (WHITE_LIST.indexOf(to.path) !== -1) {
      //      在：向下执行
      next()
    } else {
      //      不在：跳转到登录页面
      Message.error('请登录')
      next('/login')
    }
  }
})